<?php
/**
 * Chargement des prix dans la base de donnée de l'ICU
 * Les prix étant sauvegarés en integer, ils sont automatiquement
 * convertis en float (val / 100) lors de la récupération
 * et multipliés par 100 lors de la sauvegarde.
 *
 * @author  Joseph Lemoine  lemoine.joseph@gmail.com
 * @version 1
 */
class icuMarPrices extends Dao {
    
    /**
     * Nom de la base de donnée liée
     * @author  Joseph Lemoine - lemoine.joseph@gmail.com
     * @var     string
     */
    protected $_bdd = "ICU";

    /**
     * Nom de la table
     * @author  Joseph Lemoine - lemoine.joseph@gmail.com
     * @var     string
     */
    protected $_table = "marprices";

    /**
     * Définie l'accès en lecture seule ou non de la table
     * @author  Joseph Lemoine - lemoine.joseph@gmail.com
     * @var	bool
     */
    protected $_readOnly = FALSE;

    /**
     * Surcharge du constructeur parent pré-paramétré pour charger le prix demandé
     * @author	Joseph Lemoine - lemoine.joseph@gmail.com
     * @return	$this
     */
    public function __construct($id){
	parent::__construct($this->_base, $this->_table, $this->_readOnly);
	/* On récupère le prix correspondant */
	$this->load($id);
    }

    /**
     * Surcharge de Dao::load pour modifier directement la valeur des prix
     * @author	Joseph Lemoine - lemoine.joseph@gmail.com
     * @Param	int	    $id		    Identifiant de la ligne à récupérer
     * @param	string	    $column	    Nom de la colonne où cherche l'ID
     * @param	string	    $column	    Nom de la colonne où effectuer un tri
     * @param	bool	    $forceReload    Force le rechargement des données
     * @return	bool
     */
    public function  load($id = null, $column = null, $order = null, $forceReload = false) {
	$res = parent::load($id, $column, $order, $forceReload);

	/**
	 * Ajustement des prix pour l'exploitation
	 * Etant donné qu'ils sont sauvegardé en tant que double int, on les divise
	 * par cent pour obtenir le prix sous format monétaire
	 */
	$this->all /= 100;
	$this->buy /= 100;
	$this->sell /= 100;

	return $res;
    }

    protected function  save($forceSave = FALSE) {
	/**
	 * Ajustement des prix pour l'exportation
	 * Etant donné qu'ils sont sauvegardé en tant que double int, on les multiplies
	 * par cent pour obtenir le prix en entier
	 */
	$this->all *= 100;
	$this->buy *= 100;
	$this->sell *= 100;

	/* Exécution de la sauvegarde */
	return parent::save($forceSave);
    }
}
?>
